[iOS 10] PlaygroundでUIKitの描画を行う
Playground
こんにちは!
モバイルアプリサービス部の田中孝明です。
Playground
はXcodeに付属されている、Swiftの実行結果をリアルタイムで処理・描画してくれる機能です。
iOS 9からUIの描画を試す処理が若干変わりましたので、その紹介ができればと思います。
UIKitの描画
Playground
を利用する場合はXcodeのプロジェクトにPlayground
を追加するだけです。
例としてUITableView
を描画させるサンプルを作成します。
Playground
に以下のライブラリをインポートします。
import UIKit import XCPlayground import PlaygroundSupport
以下にUITableView
のコードをPlayground
に追加します。
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { var tableView: UITableView! let items = ["Item 1", "Item 2", "Item 3"] override func viewDidLoad() { super.viewDidLoad() self.view.frame = CGRect(x: 0, y: 0, width: 320, height: 480) self.tableView = UITableView(frame:self.view.frame) self.tableView!.dataSource = self self.tableView!.register(UITableViewCell.self, forCellReuseIdentifier: "cell") self.view.addSubview(self.tableView) } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int{ return self.items.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{ let cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: "cell") let text = self.items[indexPath.row] cell.textLabel?.text = text return cell } }
あとはViewController
を初期化してPlaygroundPage.current.liveView
に代入するとPlayground
のtimeline
に描画されるようになります。
この処理がiOS 9
以前と変更になっています。
var ctrl = ViewController() PlaygroundPage.current.liveView = ctrl
実行
PlaygroundのtimelineにUITableViewの描画結果が表示されました!
まとめ
Playgroundはアプリ開発者ではなくても手軽にSwiftの環境を試せる便利なツールだと思います。(Xcodeをインストールするという手間を考慮しなければ、、、ですが)
今回はUIKitの描画だけにフォーカスしましたが、UIアニメーションも試すことができますので、設定値を変えてその場で結果を見たいときは重宝するのではないでしょうか?